package edu.cuit.avatar.method;

import java.util.Scanner;

/**
 * 模块化代码
 *  1.将计算最大公约数(独立的功能)和main方法的代码进行分离，让逻辑更加清晰而且可读性更强
 *  2.计算最大公约数的错误限定在gcd方法中，缩小了调试的范围(易于调试)
 *  3.其它程序可以重用gcd方法计算最大公约
 */
public class GreatestCommonDivisor {
    /**
     * 计算两个整数的最大公约数
     * @param number1 整数1
     * @param number2 整数2
     * @return 最大公约数
     */
    public static int gcd(int number1, int number2){
        if(number1 % number2 == 0)
            return number2;
        if(number2 % number1 == 0)
            return number1;

        int gcd = 1;
        for(int k = number1 / 2; k >= 2; k--){
            if(number1 % k == 0 && number2 % k == 0){
                gcd = k;
                break;
            }
        }
        return gcd;
    }

    public static void main(String[] args) {
        System.out.println("请输入两个整数:");
        Scanner input = new Scanner(System.in);
        int number1 = input.nextInt(),
            number2 = input.nextInt();
        input.close();

        int gcd = gcd(number1, number2);
        System.out.printf("(%d,%d)最大公约数:%d", number1, number2, gcd);
    }
}
